Linux使用crontab定时任务执行python文件小记 您所在的位置:网站首页 Python 文件打开 Linux使用crontab定时任务执行python文件小记

Linux使用crontab定时任务执行python文件小记

2022-12-16 16:03| 来源: 网络整理| 查看: 265

在centos系统中默认安装了crontab,可以对其进行设置来进行定时任务,定时任务的最低时间点是分钟 先来介绍一下基本使用吧 可以使用 vim /etc/crontab  打开crontab的配置文件,进行crontab的定时任务的配置

配置格式: 每五分钟执行   */5 * * * * 每小时执行      0 * * * * 每天执行          0 0 * * * 每周执行          0 0 * * 0 每月执行          0 0 1 * * 每年执行          0 0 1 1 *

另外在执行的任务中如果有输出,可以在任务的后面添加log日志,将输出或执行信息写入到log日志中 添加方式: eg:  0  * * * *  root  /root/main.py>>result.log 2>&1 每小时以root的身份执行一次root/main.py文件, 并将执行过程中出现的输出信息或错误信息打印到root/result.log文件中

在执行过程中也可以查看crontab的log日志,查看crontab的执行情况:tail -f /var/log/cron 

上面说了基本的crontab的设置,在执行py文件的时候还有一些小坑

1、首先,个人测试需要将添加到crontab执行的文件加上可执行权限:chmod +x  xxxx.py

2、其次在py文件的开始第一行需要添加 #!/usr/bin/env pyhton   让文件执行的时候明白调用什么解释器执行

3、最坑的一点就是导包错误,提示:ModuleNotFoundError: No module named 'xxxx' 主要是因为在crontab执行文件的时候不知道应该从哪里加载这些包文件 可以先直接进入python解释器(就是直接写python进入)

>>> import psycopg2 >>> psycopg2.__file__ '/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py'

查看python解释包的位置,我这个位置是'/usr/local/lib/python3.6/site-packages/' 需要在py文件的开始导入这个包之前将这个文件位置

import sys sys.path.append('/usr/local/lib/python3.6/site-packages') import psycopg2

目前遇到这些坑,大家有更好的解决方法欢迎一块讨论补充



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有